// pages/comment/comment.js
const http = require("../../api/camp")
const util = require("../../utils/util")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    score:"",
    content:"",
    fileList: [],
    campId:"",
    userId:"",
    releaseTime:"",
    imageUrl:"",
    anonymous:"1"
  },
  // 放弃编辑
  resetFiled(){
    this.setData({
      score:"",
      content:"",
      fileList:[],
      imageUrl:""
    })
    //返回上一个页面
    wx.navigateBack({
      delta: 1
    });

  },
  // 上传完毕的回调函数
  afterRead(event) {
    let that = this
    console.log(event, "图片上传event");
    const { file } = event.detail;
    // 当设置 mutiple 为 true 时, file 为数组格式
    const token = wx.getStorageSync('token') || null;

    // 批量上传文件
    const uploadPromises = file.map((f) => {
      return new Promise((resolve, reject) => {
        wx.uploadFile({
          url: 'http://61.182.254.18:9150/common/upload', 
          filePath: f.url,
          name: 'file',
          header: {
            'Authorization': `Bearer ${token}`,
          },
          success: (res) => {
            try {
              // 尝试解析响应数据
              const parsedData = JSON.parse(res.data);
              resolve(parsedData);
            } catch (parseError) {
              console.error('解析响应数据失败:', parseError);
              reject(parseError);
            }
          },
          fail: (err) => {
            reject(err);
          },
        });
      });
    });

    // 所有文件上传完成后更新 fileList 和 filenames 字符串
    Promise.all(uploadPromises).then((responses) => {
      const { fileList = [] } = that.data;
      console.log(responses, "responses");

      // 确保 responses 是一个数组
      if (!Array.isArray(responses)) {
        throw new Error('responses is not an array');
      }

      const updatedFiles = responses.map((res, index) => ({

        url: res.url, // 上传后的文件 URL
      }));
      console.log(updatedFiles, "updatedFiles");

      // 更新 fileList
      fileList.push(...updatedFiles);
      that.setData({ fileList });

      // 组合文件地址名
      const filenames = responses.map(res => res.fileName);
      const filenamesString = filenames.join(',');

      // 更新 filenamesString
      that.setData({ imageUrl:filenamesString });


      console.log(that.data,"data");
      
    }).catch((error) => {
      console.error('上传文件失败:', error);
    });
  },

  //提交评价
  submitComment(){
    console.log(this.data,"data")
    http.addComment(this.data).then(res=>{
      console.log(res,11111111)
      if(res.code == 200) {
        console.log(res)
        // 返回上一个页面
        wx.navigateBack({
          delta: 1
        });
      }
    })
  },
  // 删除图片
  deleteCommentImg(e){
    let {index} = e.detail
    let fileList = this.data.fileList.splice(index,1)
    this.setData({
      fileList:fileList
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const userInfo = wx.getStorageSync("userInfo")
    this.setData({
      campId:options.campId,
      userId: userInfo.userId
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})